﻿using Api.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Layans.Data;
using WebMatrix.WebData;
using LForum.Models;
namespace Api.Controllers.Useres
{
    public class PostController : Controller
    {
    //    LayansContext db = new LayansContext();
    //    //
    //    // GET: /Post/
        
    //    [ValidateAntiForgeryToken]
    //    [Authorize]
    //    [HttpPost]
    //    public ActionResult Index(UsersPost userpost)
    //    {
    //        if(ModelState.IsValid) 
    //        {
    //            var user = db.Author.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);
    //            var post = new UsersPost
    //            {
    //               Posts = Server.HtmlDecode(userpost.Posts),
    //               avatar = userpost.avatar,
    //               UserName = UserPost,

    //            };

    //            db.UsersPosts.Add(post);
    //            db.SaveChanges();
    //        }
    //        return Redirect("/");
    //    }

    //    [Authorize]
    //    public ActionResult ViewPosts(int postId)
    //    {
    //        if (!db.UsersPosts.Any(x => x.Id == postId))
    //        {
    //            return Redirect("/");
    //        }
    //        var post = db.UsersPosts.Where(x => x.Id == postId)
    //            .Select(x => new FullPostsViewModel
    //            {
    //                Id = x.Id,
    //                Post = x.Posts,
    //                Username  = x.UserName.UserName,
    //                Avatar = x.avatar.avatar,
    //            }).SingleOrDefault();

    //        post.Answers = db.UserPostAnsewerViewModel.Where(x => x.Userpost)
    //                        .Select(y => new UserPostAnsewerViewModel
    //                                {
    //                                   Avatar = y.Avatar,
    //                                   Content = y.Content,
    //                                   UserName = y.UserName,
    //                                });
            
            
    //        return View(post);
    //    }
    //    [Authorize]
    //    [HttpPost]
    //    [ValidateAntiForgeryToken]
    //    public ActionResult DoAnswer(int UserPostId, string comment)
    //    {
    //        var user = db.Author.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);

    //        var userpost = db.UsersPosts.FirstOrDefault(x => x.Id == UserPostId);

    //        db.usersPostComments.Add(
    //            new UsersPostComment()
    //            {
    //                UserName = UserName,
    //                Comment = Server.HtmlDecode(comment),
    //                DateTime = DateTime.Now,
    //                Avatar = avatar,  
    //            });
    //        db.SaveChanges();

    //        return Redirect("/");
    //    }

    //    [Authorize]
    //    [ValidateAntiForgeryToken]
    //    public ActionResult VoteUp (int id)
    //    {
    //        if (db.UserPostVotes.Any(x => x.Posts.Id == id && x.Name.UserId == WebSecurity.CurrentUserId))
    //        {
    //            var currentEntry = db.UserPostVotes.SingleOrDefault(x => x.Posts.Id == id && x.Name.UserId == WebSecurity.CurrentUserId);
    //            currentEntry.VotedBy = true;
    //            db.SaveChanges();
    //        }
    //        else
    //        {
    //            var user = db.Author.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);
    //            var UserPost = db.UsersPosts.FirstOrDefault(x => x.Id == id);
    //            db.UserPostVotes.Add(new UserPostVote()
    //                {
    //                    Posts = UserPost,
    //                    Name = user,
    //                    VotedBy = true,
    //                });
    //        }
    //        int ratting = db.UserPostVotes.Count(y => y.Posts.Id == id && y.VotedBy);

    //        return Content(ratting.ToString());

    //    }
    //    public ExternalLoginConfirmationViewModel UserPost { get; set; }

    //    public ExternalLoginConfirmationViewModel UserName { get; set; }

    //    public Avatar avatar { get; set; }
    }
}